package datos;

public class VectorizadorAtributos implements IAdapter<Dato, Double[]> {
	private Atributo<Double>[] ordenAtributos;
	
	public VectorizadorAtributos(Atributo<Double>[] ordenAtributos)
	{
		this.ordenAtributos = ordenAtributos;
	}
	
	@Override
	public Double[] adapt(Dato a) {
		Double[] resultado = new Double[ordenAtributos.length];		
		
		/*System.out.println("Dato: " + a);
		String print = "Atributos a vectorizar: ";
		for(int i = 0; i < ordenAtributos.length; i++)
		{
			print += ordenAtributos[i].getNombre();
		}
		
		System.out.println(print);*/
		
		for(int i = 0; i < ordenAtributos.length; i++)
		{
			
			Object valor = a.getAtributo(ordenAtributos[i]);
			
			if(!(valor instanceof Double))
			{
				throw new RuntimeException("Uno de los atributos no tiene un valor num�rico.");
			}
			
			resultado[i] = (Double)valor;
		}
		
		return resultado;
	}
}
